Regular expressions can be used in analyzing character streams. For example, programs such as Perl and AWK are based on regular expression pattern matching. A regular expression can be used to define a matching sequence of characters. However, such regular expression matching is performed on data that has already been converted into a byte, word, or other multi-bit format. In contrast, serial bit streams are not grouped into such multi-bit formats.
Parent U.S. patent application Ser. No. 12/949,703, titled “SERIAL BIT STREAM REGULAR EXPRESSION ENGINE”, filed Nov. 18, 2010, describes how regular expressions can be applied to serial bit streams. And it is generally possible to implement any desired regular expression using the mechanism described in parent U.S. patent application Ser. No. 12/949,703, titled “SERIAL BIT STREAM REGULAR EXPRESSION ENGINE”, filed Nov. 18, 2010. But describing the regular expression completely in this manner can be complicated. For comparison, in computer science any program can be written in machine language (using the bits 0 and 1). But implementation of a complex computer program in machine language is, at best, very tedious: at worst, it is effectively impossible to get correct. By writing the program in assembly language or a higher order programming language (for example, COBOL, Fortran, or C), implementation and debugging is simplified.
Note that the higher order programming language does not give the programmer the ability to implement any program the machine language cannot support. If anything, the reverse is true: there may be instruction sequences that can be implemented in machine language that have no equivalent in the higher order programming language. But the simplified implementation makes the user of higher order programming languages advantageous over programming in machine language.